package com.adk.backend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 订单列表实体类
 * 对应数据库表：lx_order_list
 */
@Data
@TableName("lx_order_list")
public class LxOrderList implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 订单号
     */
    private String orderNo;
    
    /**
     * 客户ID
     */
    private Long customerId;
    
    /**
     * 客户简称
     */
    private String cusShort;
    
    /**
     * FBA单号
     */
    private String fbaNo;
    
    /**
     * 运输方式：1-沙特空运，2-沙特海运拼柜，3-阿联酋空运，4-阿联酋海运，7-沙特海运整柜
     */
    private Integer shipType;
    
    /**
     * 总箱数
     */
    private Integer totalCtns;
    
    /**
     * 总重量（GW）
     */
    private BigDecimal totalGw;
    
    /**
     * 总体积（VW）
     */
    private BigDecimal totalVw;
    
    /**
     * 计费重量
     */
    private BigDecimal shipWeigth;
    
    /**
     * 计费重量类型：1-除5000,单箱取大值后累加，2-除6000,单箱取大值后累加，3-除5000,累加后取大值，4-除6000,累加后取大值
     */
    @TableField("ship_weight_type")
    private Integer shipWeightType;
    
    /**
     * 关联字段（非数据库字段）
     */
    @TableField(exist = false)
    private String statusName;          // 状态名称（来自order_status表）
    
    @TableField(exist = false)
    private String username;            // 销售员用户名（来自admin表）
    
    @TableField(exist = false)
    private String bookingDate;         // 预约日期（来自booking_list表）
    
    @TableField(exist = false)
    private Integer statusTime;         // 状态时间（来自order_tracking表）
    
    @TableField(exist = false)
    private String otRemarks;           // 跟踪备注（来自order_tracking表）
    
    @TableField(exist = false)
    private Integer otIsShow;           // 跟踪是否显示（来自order_tracking表）
    
    @TableField(exist = false)
    private String recvDate;            // 收货日期（来自recvd_list表）
    
    @TableField(exist = false)
    private Integer recvType;           // 收货类型（来自recvd_list表）
    
    @TableField(exist = false)
    private String recvNo;              // 收货单号（来自recvd_list表）
    
    @TableField(exist = false)
    private String flightDate;          // 航班日期（来自booking_flight表）
    
    @TableField(exist = false)
    private Integer newStatus;          // 新状态（来自ship_log表）
    
    @TableField(exist = false)
    private String eta;                 // 预计到达时间（来自ship_log表，用于阿联酋海运）
    
    @TableField(exist = false)
    private String asnFiles;            // ASN文件（用于沙特空运，des_add==4且有booking_date时）
    
    /**
     * 是否已发送计费重：0-未发送，1-已发送，2-已确认
     */
    @TableField("is_ship_weight_confirm")
    private Integer isShipWeightConfirm;
    
    /**
     * 计费重确认时间（时间戳，秒）
     */
    @TableField("ship_weight_confirm_time")
    private Integer shipWeightConfirmTime;
    
    /**
     * 计费重确认用户ID
     */
    @TableField("ship_weight_confirm_uid")
    private Integer shipWeightConfirmUid;
    
    /**
     * 客户计费重
     */
    @TableField("cus_ship_weigth")
    private BigDecimal cusShipWeigth;
    
    /**
     * 同行计费重
     */
    private BigDecimal txShipWeigth;
    
    /**
     * 实际体积重
     */
    private BigDecimal trueVw;
    
    /**
     * 收货重量
     */
    private BigDecimal recvGw;
    
    /**
     * 收货体积
     */
    private BigDecimal recvVw;
    
    /**
     * 订单状态
     */
    private Integer status;
    
    /**
     * 客户状态
     */
    private Integer customerStatus;
    
    /**
     * 是否收货：0-未收货，1-已收货
     */
    private Integer isRecv;
    
    /**
     * 收货时间（时间戳，秒）
     */
    private Integer recvTime;
    
    /**
     * 最后状态更新时间（时间戳，秒）
     */
    private Integer lastStatusTime;
    
    /**
     * 订单类型（交货仓库）：1-自寄，2-上门提货，3-自寄东莞仓，4-自寄义乌仓，5-自寄福永空运仓，6-自寄广州仓，7-自寄香港仓
     */
    private Integer orderType;
    
    /**
     * 预计到深圳日期（字符串格式）
     */
    @TableField("eta_sz")
    private String etaSz;
    
    /**
     * 预计到深圳日期（时间戳，秒）
     */
    @TableField("eta_sz_int")
    private Integer etaSzInt;
    
    /**
     * 仓库ID（等于ship_type）
     */
    @TableField("wh_id")
    private Integer whId;
    
    /**
     * 自定义入仓号
     */
    private String ibNo;
    
    /**
     * 目的地地址类型（派送方式）：1-Aiduk-上架，2-Aiduk-DS，3-亚马逊，4-Noon预约送仓，5-私人地址，6-自提，7-B2C
     */
    private Integer desAdd;
    
    /**
     * 目的地地址
     */
    private String desAddress;
    
    /**
     * 派送城市：1-利雅得及周边，2-达曼及周边，3-吉达及周边，4-Nemo新城及周边，5-其他
     */
    private Integer desCity;
    
    /**
     * 目的地国家：1-沙特，2-阿联酋
     */
    @TableField("des_country")
    private Integer desCountry;
    
    /**
     * 货物性质：根据运输方式不同有不同的选项
     * 沙特空运：1-电商杂货，2-敏感货，3-无电普货，4-带电普货，5-空运5日达
     * 沙特海运拼柜/整柜：1-电商带电杂货，2-电商无电杂货，3-敏感货，4-无电普货，5-带电普货
     * 阿联酋空运：1-电商杂货，2-敏感货，3-无电普货，4-带电普货
     * 阿联酋海运：1-电商带电杂货，2-电商无电杂货，3-敏感货，4-无电普货，5-带电普货
     */
    private Integer isBrand;
    
    /**
     * 是否报关：1-是，2-否
     */
    private Integer isDeclare;
    
    /**
     * 申报类型
     */
    private Integer declareType;
    
    /**
     * 客户备注
     */
    private String cusRemarks;
    
    /**
     * 仓库备注
     */
    private String wmsRemarks;
    
    /**
     * 订单备注
     */
    private String remarks;
    
    /**
     * 业务备注
     */
    @TableField("yw_remarks")
    private String ywRemarks;
    
    /**
     * 销售员ID
     */
    private Long salesUid;
    
    /**
     * 添加用户ID
     */
    private Long addUid;
    
    /**
     * 添加时间（时间戳，秒）
     */
    private Integer addTime;
    
    /**
     * 更新时间（时间戳，秒）
     */
    private Integer updateTime;
    
    /**
     * 是否已创建账单：0-未创建，1-已创建
     */
    private Integer isBill;
    
    /**
     * 账单ID
     */
    private Long billId;
    
    /**
     * 是否审核：0-未审核，1-已审核
     */
    @TableField("is_confirm")
    private Integer isConfirm;
    
    /**
     * 审核时间（时间戳，秒）
     */
    @TableField("confirm_time")
    private Integer confirmTime;
    
    /**
     * 审核用户ID
     */
    @TableField("confirm_uid")
    private Long confirmUid;
    
    /**
     * 是否敏感货：0-否，1-MF，2-MY
     */
    @TableField("is_sensitive")
    private Integer isSensitive;
    
    /**
     * 单价
     */
    private java.math.BigDecimal price;
    
    /**
     * 是否报价：1-否，2-是
     */
    @TableField("is_price")
    private Integer isPrice;
    
    /**
     * 品牌备注
     */
    private String isBrandRemarks;
    
    /**
     * 仓库天数
     */
    private Integer whDays;
    
    /**
     * 装柜日期（从 lx_loading_details 关联）
     */
    @TableField(exist = false)
    private String loadingDate;
    
    /**
     * 装柜号（从 lx_loading_details 关联）
     */
    @TableField(exist = false)
    private String loadingNo;
    
    /**
     * 头程单号（从 lx_ship_log 关联）
     */
    @TableField(exist = false)
    private String txNo;
    
    /**
     * 仓库地址ID（关联lx_customer_wh_add表）
     */
    @TableField("wh_add_ids")
    private Long whAddIds;
    
    /**
     * 是否停止发货：0-否，1-是
     */
    @TableField("is_stop_ship")
    private Integer isStopShip;
    
    /**
     * 停止发货备注
     */
    @TableField("stop_ship_remarks")
    private String stopShipRemarks;
    
    /**
     * 停止发货操作人ID
     */
    @TableField("stop_op_uid")
    private Integer stopOpUid;
    
    /**
     * 停止发货操作时间（时间戳，秒）
     */
    @TableField("stop_op_time")
    private Integer stopOpTime;
    
    /**
     * 是否打印标签：0-否，1-是
     */
    @TableField("print_label")
    private Integer printLabel;
    
    /**
     * 打印标签时间（时间戳，秒）
     */
    @TableField("print_label_time")
    private Integer printLabelTime;
    
    /**
     * 打印标签用户ID
     */
    @TableField("print_label_uid")
    private Integer printLabelUid;
}


